package com.ys.mapper.report;

import com.ys.entity.report.ReDeptRevenueExpenditure;
import com.ys.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * DAO
 * @author Jason
 */
public interface ReDeptRevenueExpenditureDiyMapper extends BaseMapper<ReDeptRevenueExpenditure> {

	/**
	 * 	根据公司编码、公司账户流水,统计部门收支*支出,不包括普通运营账户
	 */
	List<Map<String, Object>> countAccountCountByDeptRevenueExpenditureNoComOut(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 * 	根据公司编码、公司账户流水,统计部门收支*支出,包括普通运营账户
	 */
	List<Map<String, Object>> countAccountCountByDeptRevenueExpenditureWithComOut(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 *根据公司编码、公司账户流水,统计部门收支*收入,不包括普通运营账户
	 */
	List<Map<String, Object>> countAccountCountByDeptRevenueExpenditureNoComIn(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 * 根据公司编码、公司账户流水,统计部门收支*收入,包括普通运营账户
	 */
	List<Map<String, Object>> countAccountCountByDeptRevenueExpenditureWithComIn(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 * 根据公司编码、公司账户流水,统计部门收支*利润,不包括普通运营账户
	 */
	List<Map<String, Object>> countAccountCountByDeptRevenueExpenditureNoCom(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 * 根据公司编码、公司账户流水,统计部门收支*利润,包括普通运营账户
	 */
	List<Map<String, Object>> countAccountCountByDeptRevenueExpenditureWithCom(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 * 根据公司编码、公司账户流水,统计上月最后一天的历史资金，支出,不包括普通运营账户
	 */
	List<Map<String, Object>> countMonthLastDayCountNoComOut(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 * 根据公司编码、公司账户流水,统计上月最后一天的历史资金，支出,包括普通运营账户
	 */
	List<Map<String, Object>> countMonthLastDayCountWithComOut(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 * 根据公司编码、公司账户流水,统计上月最后一天的历史资金，收入,不包括普通运营账户
	 */
	List<Map<String, Object>> countMonthLastDayCountNoComIn(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 *根据公司编码、公司账户流水,统计上月最后一天的历史资金，收入,包括普通运营账户
	 */
	List<Map<String, Object>> countMonthLastDayCountWithComIn(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 * 根据公司编码、公司账户流水,统计上月最后一天的历史资金,不包括普通运营账户
	 */
	List<Map<String, Object>> countMonthLastDayCountNoCom(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 * 根据公司编码、公司账户流水,统计上月最后一天的历史资金,包括普通运营账户
	 */
	List<Map<String, Object>> countMonthLastDayCountWithCom(@Param("startTime")String startTime, @Param("endTime")String endTime);

	/**
	 * 修改上月最后一天的历史资金
	 */
	int updateMonthLastDayCount(ReDeptRevenueExpenditure reDeptRevenueExpenditure);

	/**
	 * 修改上月最后一天的历史资金-归0
	 */
	int updateMonthLastDayCountToZero(ReDeptRevenueExpenditure reDeptRevenueExpenditure);
}
